Day2 语言元素

1 数据类型

Python中常见的数据类型主要包括:整型、浮点型、字符串型、布尔型和复数型。可以使用Python中的内置函数对数据类型进行转换。

  • 整型:Python 3中的整数只有int类型,Python可以处理任意大小的整数,且支持二进制(如0b100,换算成十进制是4)、八进制(如0o100,换算成十进制是64)、十进制(100)和十六进制(0x100,换算成十进制是256)的表示法。
  • 浮点型:浮点数也就是小数,浮点数除了数学写法(如123.456)外,还支持科学计数法(如1.23456e2)。
  • 字符串型:字符串是以单引号或双引号括起来的任意文本,比如'hello'"hello",字符串还有原始字符串表示法、字节字符串表示法、Unicode字符串表示法,而且可以书写成多行的形式(用三个单引号或三个双引号开头,三个单引号或三个双引号结尾,即Python中的多行注释)。
  • 布尔型:布尔值只有TrueFalse两种值,在Python中可以直接用TrueFalse表示布尔值(首字母必须大写),也可以通过布尔运算计算出来,例如3 < 5会产生布尔值True,而2 == 1会产生布尔值False
  • 复数型:形如3+5j,跟数学上的复数表示一样,唯一不同的是虚部的i换成了j

2 变量

2.1 变量的命名

在Python中,变量命名需要遵循以下必须遵守硬性规则和强烈建议遵守的非硬性规则。

(1) 硬性规则:

  • 变量名由字母(广义的Unicode字符,不包括特殊字符)、数字和下划线构成,且不能以数字开头。
  • 大小写敏感(大写的a和小写的A是两个不同的变量)。
  • 不得与关键字(有特殊含义的单词,后面会讲到)和系统保留字(如函数、模块等的名字)冲突。

(2) PEP 8要求:

  • 用小写字母拼写,多个单词用下划线连接。
  • 受保护的实例属性以单个下划线开头。
  • 私有的实例属性以两个下划线开头。

2.2 变量的使用

(1) Python中简单的加减乘除运算。

"""
使用变量保存数据并进行加减乘除运算
Version: 0.1
Author: StdChen
"""
a = 321
b = 12
print(a + b)    # 333
print(a - b)    # 309
print(a * b)    # 3852
print(a / b)    # 26.75

(2) 在Python中可以使用type()函数对变量的类型进行检查。

'''
使用pyte()检查变量类型
Version: 0.1
Author:StdChen
'''
a = 100
b = 12.345
c = 1 + 3j
d = 'Hello, world!'
e = True
print(type(a))    # <class 'int'>
print(type(b))    # <class 'float'>
print(type(c))    # <class 'complex'>
print(type(d))    # <class 'str'>
print(type(e))    # <class 'bool'>

(3) 通过键盘输入两个整数来实现对两个整数的算术运算。

"""
使用input()函数获取键盘输入(字符串)
使用int()函数将输入的字符串转换成整数
使用print()函数输出带占位符的字符串
Version: 0.1
Author: StdChen
"""
a = int(input('a = '))
b = int(input('b = '))
print('%d + %d = %d' % (a, b, a + b))
print('%d - %d = %d' % (a, b, a - b))
print('%d * %d = %d' % (a, b, a * b))
print('%d / %d = %f' % (a, b, a / b))
print('%d // %d = %d' % (a, b, a // b))
print('%d %% %d = %d' % (a, b, a % b))
print('%d ** %d = %d' % (a, b, a ** b))
'''
如果输入a=34,b=21,那么结果分别如下:
34 + 21 = 55
34 - 21 = 13
34 * 21 = 714
34 / 21 = 1.619047619047619
34 // 21 = 1
34 % 21 = 13
34 ** 21 = 144896287389534090178492559785984
'''

注意:上面的print()函数中输出的字符串使用了占位符语法,其中%d是整数的占位符,%f是小数的占位符,%%表示百分号,字符串之后的%后面跟的变量值会替换掉占位符然后输出到终端。

3 运算符

Python支持多种运算符,下表大致按照优先级从高到低的顺序列出了所有的运算符。

运算符 描述
[] [:] 下标,切片
** 指数
~ + - 按位取反,正负号
* / % // 乘,除,模,整除
+ - 加,减
>> << 右移,左移
& 按位与
^ | 按位异或,按位或
<= < > >= 小于等于,小于,大于,大于等于
== != 等于,不等于
is is not 身份运算符
in not in 成员运算符
not or and 逻辑运算符
= += -= *= /= %= //= **= &= | = ^= >>= <<=
"""
赋值运算符和复合赋值运算符
Version: 0.1
Author: StdChen
"""
a = 10
b = 3
a += b        # a = a + b
a *= a + 2    # a = a * (a + 2)
print(a)      # 195

4 练习

# -*- coding: utf-8 -*-
"""
Created on Mon May 18 10:55:08 2020
将华氏温度转换为摄氏温度
@author: StdChen
"""
f = float(input('请输入华氏温度:'))
c = (f-32)/1.8
print('%.1f华氏温度 = %.1f摄氏度' % (f,c))
#在使用print函数输出时,也可以对字符串内容进行格式化处理,上面print函数中的字符串%1.f是一个占位符,稍后会由一个float类型的变量值替换掉它。
# -*- coding: utf-8 -*-
"""
Created on Mon May 18 11:04:38 2020
输入年份,判断是否为闰年,如果是闰年输出True,否则输出False。
符合下列条件之一者是闰年:
(1)能被4整除,但不能被100整除;
(2)能被400整除。
@author: StdChen
"""
year = int(input('请输入年份:'))
is_leap = year % 4 == 0 and year % 100 != 0 or year % 400 == 0
print(is_leap)